package com.example.canatest.config;

import com.alibaba.otter.canal.protocol.CanalEntry;
import com.xpand.starter.canal.annotation.*;

/**
 * @author chen.qian
 * @date 2018/3/19
 */
@CanalEventListener
public class MyEventListener {
/*

    //Mysql 发生添加的时候  触发下面的方法
    @InsertListenPoint
    public void onEvent(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
        rowData.getAfterColumnsList().forEach((c) -> System.err.println("By--Annotation: " + c.getName() + " ::   " + c.getValue()));
    }
    //Mysql 发生修改的时候  触发下面的方法
    @UpdateListenPoint
    public void onEvent1(CanalEntry.RowData rowData) {
        System.err.println("UpdateListenPoint");
        rowData.getAfterColumnsList().forEach((c) -> System.err.println("By--Annotation: " + c.getName() + " ::   " + c.getValue()));
    }
    //Mysql 发生删除的时候  触发下面的方法
    @DeleteListenPoint
    public void onEvent3(CanalEntry.EventType eventType) {
        System.err.println("DeleteListenPoint");
    }
*/

    //Mysql 发生添加 修改 删除 的时候  触发下面的方法
    // canal的名称example
    // schema：数据库
    //table : 表
    @ListenPoint(destination = "example", schema = "gmall_product", table = {"base_category1"},
            eventType = {CanalEntry.EventType.INSERT,CanalEntry.EventType.UPDATE})
    public void onEvent4(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
        System.err.println("一级分类发生了变化");
        rowData.getAfterColumnsList().forEach((c) ->
                System.err.println("表字段::表字段的值  " +
                        c.getName() + " ::   " + c.getValue())
        );

        //更新Redis  MQ  ..
 /*       redisTemplate.opsForHash().put(RedisConst.USER_KEY_PREFIX + userId
                + RedisConst.USER_CART_KEY_SUFFIX, skuId.toString(), cartInfo);*/
    }
}
